The core logic of a computer system functions as the central highway and central interchange for the majority of data that passes through a computer system. The core logic typically comprises one or more integrated circuit components that are mounted on a printed circuit board (e.g., motherboard), and is generally referred to as a chipset. A core logic chipset operates as the central data transfer system of a computer. Data is transferred to and from other processors that are coupled to the core logic chipset (e.g., mounted on the motherboard). Such processors include, for example, the central processing unit (CPU), the graphics processing unit (GPU), and the like.
One of the primary functions of the core logic chipset is to provide communications pathways for the CPU, GPU, and the like, to communicate with system memory. For example, the core logic chipset is generally responsible for the addressing of system memory locations, performing all of the various signaling mechanisms required to physically address the multiple memory chips on one or more memory modules (DIMMs, etc.), and the like. The core logic chipset is also responsible for supporting the different features that different types of memory may support. Additionally, the core logic is responsible for interfacing with the expansion bus (e.g., PCI, 1394, etc.) and managing various input output devices (e.g., disk drives, Ethernet adapters, etc.).
The GPU of the computer system comprises an integrated circuit component that is optimized to process 3-D image data. Generally, the GPU is coupled to receive and transmit data through the core logic chipset and handles image related processing (e.g., full-motion video decompression, 3-D image processing, real-time 3-D rendering, etc.) for the computer system. In most configurations, the CPU executes general purpose processing (e.g., simulation, word processing, CAD, etc.) while the GPU utilizes its specialized hardware to handle graphics related and 3-D rendering functions. In a typical graphics computer system, most (if not all) of the processor intensive rendering computations are performed by the GPU.
High-performance graphics rendering is a key factor in a computer systems overall usability and appeal. The graphical depiction of data, through, for example, full motion video, detailed true color images, photorealistic 3-D modeling, and the like, has become a preferred mechanism for presenting complex data to the user. Increasing the performance and/or the realism of interactive three-dimensional images and scenes has become a primary driver for the increasing performance of newer computer systems. The performance of a typical graphics rendering process as implemented on a graphics computer system is highly dependent upon the performance of the underlying core logic chipset. For example, high performance graphics rendering requires efficiently managed data transfers between the GPU and system memory.
To increase the performance of the computer system, computer system designers have added a number of high-performance features to the GPUs coupled to the core logic chipset. In addition to increasing the capability of the GPUs, computer system designers have also added a number of high-performance features to the core logic chipset itself. In an ideal case, a discrete GPU component (e.g., an add-in graphics card) can be custom-designed to function with a specific core logic chipset, thus forming a customized configuration, whereby features of the core logic chipset are designed to function in cooperation with features of the discrete GPU component.
The problem with such customization is the fact that the industry standard x86 architecture computer system is an open architecture, whereby a given computer system can be assembled with components (e.g., core logic chipsets, CPUs, GPUs, input output devices, etc.) from a large number of different manufacturers. Open architectures depend on adherence to a set of basic specifications and protocols to ensure interoperability and reliability. Furthermore, a given x86 computer system can be assembled with different components from different generations from the same manufacturer (e.g., a “high-performance” core logic chipset coupled with an earlier generation GPU, etc.). These limitations make such customization and close cooperation between different components of the industry standard x86 architecture computer system impractical. Thus what is needed is a way to efficiently configure different components of a computer system to improve performance.